package arithmetic2;

import java.awt.*;

/**
 * Created by AJie on 2019/8/1
 * Function : 005的简化版
 * {@link T_005_LongestPalindromicSubstring}
 * . 回文数
 * 示例 1:
 *
 * 输入: 121
 * 输出: true
 * 示例 2:
 *
 * 输入: -121
 * 输出: false
 * 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
 */
public class T_009_PalindromeNumber {

    public static void main(String[] args) {
        int a = 100;
        int c=a;
        int d=c;
        c/=10;
        System.out.println(c+" -- "+d);

        System.out.println(isPalindrome(1001));
    }

    //注意最大值越界问题。
    public static boolean isPalindrome(int x) {
        if (x<0) return false;
//        int temp = x % 10;
        //1、方法一 int 翻转   //本质，1 最后2个数相比
        int res=0;
        int rever = x;
        while (rever!=0){
            int temp = rever % 10;
            if (res>=Integer.MAX_VALUE/10){
                return  (res==x/10 && temp==x%10);
            }
            res=res*10+temp;
            rever =rever/10;
        }
        return res==x;

        //2、方法二 判断回文  首尾依次相比  //本质，每个数相比 todo 失败 1001 ,如何取00？
//        int a = x;
//        int b = x;
//        int num=0;
//        while (a!=0){
//            int last = a % 10;//last
//            int first=b=b-num;
//            num=1;
////            while (first>=10){//首尾且不是0
//            while (first>=10){//首尾且不是0
//                first/=10;
//                num*=10;
//            }
//            num *=first;
//            System.out.println(last+" "+first);
//            if (last!=first){
//                return false;
//            }
//            a=a/10;
//        }
//        return true;
    }
}
